package communication.game;
import game.Game;
import game.Player;
import client.ClientInternals;
import communication.ComSrvCli;

/**
 * Objet envoye au client pour confirmer la fin de la partie et aller au 
 * debriefing. Cette classe contient les informations de fin de partie.
 * @author Jonathan Gander
 * @version 0.1
 */
public class ConfirmGameFinished extends ComSrvCli {

	/**
	 * Pour la serialisation
	 */
	private static final long serialVersionUID = -8971016201804063133L;

	/**
	 * Objet contenant la partie creee
	 */
	private Game game;
	
	/**
	 * Duree ecoulee durant la partie
	 */
	int time;
	
	/**
	 * Tableau de joueurs
	 */
	private Player[] tabPlayers;
	
	/**
	 * Constructeur, permet de finir la partie
	 * @param game
	 * @param time temps de la partie
	 * @param tabPlayers la liste des joueurs
	 */
	public ConfirmGameFinished (Game game, int time, Player[] tabPlayers) {
		this.game = game;
		this.time = time;
		this.tabPlayers = tabPlayers.clone();
	}
	
	@Override
	public void handleClientInternals(ClientInternals internals) {
		internals.confirmGameFinished(this);
	}
	
	/**
	 * @return Le jeu
	 */
	public Game getGame() {
		return game;
		
	}
	
	/**
	 * @return Le temps ecoule de la partie
	 */
	public int getTime() {
		return time;
	}
	
	/**
	 * @return Le tableau de joueurs
	 */
	public Player [] getTabPlayers() {
		return this.tabPlayers.clone();
	}
}
	
